package ar.com.gestion.vistas;

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import java.util.List;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

import ar.com.gestion.GestionUtils;
import ar.com.gestion.bo.UsuariosBO;
import ar.com.gestion.constantes.Constantes;
import ar.com.gestion.dominio.Cliente;
import ar.com.gestion.listeners.ListenerMedidas;
import ar.com.gestion.listeners.ModificarClienteListener;
import ar.com.gestion.springcontext.SpringContext;
import ar.com.gestion.usuarios.CancelarListener;

public class ViewModificarUsuario extends JFrame {
	
	private UsuariosBO usuariosBO = (UsuariosBO) SpringContext.getContext()
			.getBean("usuariosBO");
	
	final LinkedList<JTextField> textField = new LinkedList<JTextField>();
	
	public ViewModificarUsuario(){
	
		
		JButton aceptar,cancelar;
		
		aceptar = new JButton("Aceptar");
		cancelar = new JButton("Cancelar");
		
		List<Cliente> obtenerTodosLosClientes = usuariosBO.obtenerTodosLosClientes();
		
		final JComboBox<Cliente> comboCliente = new JComboBox<Cliente>();
		
		DefaultComboBoxModel<Cliente> model = new DefaultComboBoxModel<Cliente>();
		
		model.addElement(new Cliente());
		for (Cliente cliente : obtenerTodosLosClientes) {
			
			model.addElement(cliente);
			
		}
		
		comboCliente.setModel(model);
		
		
		
		add(new JLabel("Seleccione Cliente"));
		add(comboCliente);
		
		
		
		String[] labels = Constantes.CLIENTE;
		
		setLayout(new GridLayout(labels.length + 2, 2));
		
				
		
		for (int i = 0; i < labels.length; i++) {
			
			add(new JLabel(labels[i]));
			textField.add(new JTextField());
			add(textField.get(i));
			
			
		}
		
		textField.get(0).setEnabled(false);
		
		comboCliente.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				Cliente cliente =(Cliente) comboCliente.getSelectedItem();
				textField.get(0).setText(String.valueOf(cliente.getIdCliente()));
				textField.get(1).setText(cliente.getNombre());
				textField.get(2).setText(cliente.getApellido());
				textField.get(3).setText(cliente.getDireccion());
				textField.get(4).setText(cliente.getTelefono());
				textField.get(5).setText(String.valueOf(cliente.getSaldo()));
				
				
			}
		});
		
		aceptar.addActionListener(new ModificarClienteListener(this));
		cancelar.addActionListener(new CancelarListener(this));
		add(aceptar);
		add(cancelar);
		setSize(209,234);
		setResizable(false);
		setVisible(true);
		GestionUtils.obtenerUbicacionEnPantalla(this);
		
	}

	public LinkedList<JTextField> getTextField() {
		return textField;
	}

}
